import React, {Component} from 'react'
import Child from './Child'

export default class ErrorParent extends Component {

  state = {
    hasError: '' //用于标识子组件是否产生错误
  }

  //当Parent的 子 组件出现报错时候，会触发getDerivedStateFromError调用，并携带错误信息(生产环境build后才看得出来)
  static getDerivedStateFromError(error) {
    console.log('@@@', error);
    return {hasError: error}
  }

  componentDidCatch(error, info) {
    console.log('error:', error, 'info:', info)
    console.log('此处统计错误，反馈给服务器，用于通知编码人员进行bug的解决');
  }

  render() {
    return (
      <div>
        <h2>我是Parent组件</h2>
        {this.state.hasError ? <h2>当前网络不稳定，稍后再试</h2> : <Child/>}
      </div>
    )
  }
}
